/**
    dp[i][j] = max(dp[i][j], dp[u][j-1] * change(u, i));
**/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
char nums[41];      // 长度为N的数字串
ll dp[41][7];       // DP[i][j] 表示长度从1到i给定j个分割符所能得到的最优值。

ll change(int l, int r)
{
    ll ans = 0;
    for(int i = l; i <= r; i++)
        ans = ans * 10  + (nums[i] - '0');
    return ans;
}

int main()
{
    int n, k; scanf("%d %d", &n, &k);
    scanf("%s", nums);

    // 初始化
    for(int i = 0; i < n; i++)
        dp[i][0] = change(0, i);
    
    // 给定分隔符的数量 
    for(int j = 1; j <= k; j++)
    {
        // 枚举数字串, i 从1开始，表示枚举长度为2。
        for(int i = 1; i < n; i++)
        {
            // 枚举最后一个分隔符号的位置. 在u位置之后
            for(int u = 0; u < i; u++)
            {
                dp[i][j] = max(dp[i][j], dp[u][j - 1] * change(u + 1, i));
            }
        }
    }

    // 输出
    cout << dp[n-1][k] << endl;
    return 0;
}